package com.digui;

import java.util.Scanner;

/**
 * 递归案例：1-n的阶乘
 */

public class diguiDemo1 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int n=scanner.nextInt();
        System.out.println(dfs(n));
    }
    public static int dfs(int n){
        //设置递归条件（这个条件是将所有的自变量进行划分）
        //这里就是0-n
        if (n==0){
            return 0;
        }else if (n==1){
            //这里的return 1，是指dfs这个方法等于1,
            return 1;
        }else{
            return n*dfs(n-1);
            //每次return都返回一个值10*dfs(9)
            //每次return都返回一个值10*9dfs(8)
            //每次return都返回一个值10*9*8*dfs(7)
            //..................
            //每次return都返回一个值10*9*8*7*6*5*4*3*2*dfs(1)
            //此时n等于1，它会返回1，而不是这个整体的结果为1，只是dfs（1）=1
        }





    }
}
